package com.example.vendingmachine.service;

import com.example.vendingmachine.dto.SlotDTO;
import com.example.vendingmachine.dto.SlotQuery;
import com.example.vendingmachine.entity.Slot;
import com.github.pagehelper.PageInfo;

/**
 * 货道服务接口
 */
public interface SlotService {
    /**
     * 分页查询货道列表
     */
    PageInfo<Slot> listSlots(SlotQuery query);

    /**
     * 根据ID查询货道
     */
    Slot getSlotById(Long id);

    /**
     * 新增货道
     */
    Long createSlot(SlotDTO slotDTO);

    /**
     * 更新货道
     */
    void updateSlot(SlotDTO slotDTO);

    /**
     * 删除货道
     */
    void deleteSlot(Long id);

    /**
     * 更新货道状态
     */
    void updateSlotStatus(Long id, String status);

    /**
     * 更新货道库存
     */
    void updateSlotStock(Long id, Integer stock);

    /**
     * 检查设备下是否有货道
     */
    boolean hasSlotsByMachineId(Long machineId);

    /**
     * 检查商品是否被货道关联
     */
    boolean hasSlotsByProductId(Long productId);
} 